package com.progroup.checks;

import java.io.File;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

import android.app.ActivityManager;
import android.app.ActivityManager.RunningServiceInfo;
import android.content.Context;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.preference.PreferenceManager;
import android.util.DisplayMetrics;
import android.util.Log;
import android.util.TypedValue;
import android.widget.Toast;

import com.progroup.kyrsmoney.R;
import com.progroup.kyrsmoney.database.DBAdapter;

public class Checks {
	public static Context context =null;
	public static int View = 0, TAB=0, CHART=1;
	public static boolean KeyBack=true, KEYBACK_NO=false, KEYBACK_YES=true; 
	public static ArrayList<ArrayList<String>> list;
	public static int density = 0;
	public static boolean ChartMini = false;
	public static DisplayMetrics dispaly = null;
	
	

	public static  int DIALOG_LOADING = 0, DIALOG_LIST=1, DIALOG_OK=2, DIALOG_CANCEL=3 , DIALOG_CLICK=0;
	
	
	public static int dpw(int dp){
		return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, dispaly);
	}
	public static int dph(int dp){
		return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, dispaly);
	}
	
	public static String getDate(int i){
		long epoch1 = (System.currentTimeMillis() -((1000*60*60*24)*i))/1000;
		return new java.text.SimpleDateFormat("yyyy-MM-dd").format(new java.util.Date (epoch1*1000)); 
	}
	public static String getDateDB(int i){
		long epoch1 = (System.currentTimeMillis() -((1000*60*60*24)*i))/1000 ;
		return new java.text.SimpleDateFormat("yyyyMMdd").format(new java.util.Date (epoch1*1000)); 
	}
	
	public static String getTodayDatenotSymbol(){
		long epoch = System.currentTimeMillis()/1000;
		return new java.text.SimpleDateFormat("yyyyMMdd").format(new java.util.Date (epoch*1000)); 
	}
	public static String getTodayDateSymbol(){
		long epoch = System.currentTimeMillis()/1000;
		return new java.text.SimpleDateFormat("dd.MM.yyyy").format(new java.util.Date (epoch*1000)); 
	}
	public static String getTodayHours(){
		long epoch = System.currentTimeMillis()/1000;
		return new java.text.SimpleDateFormat("HH").format(new java.util.Date (epoch*1000)); 
	}
	public static String getTodayDateTime(){
		long epoch = System.currentTimeMillis()/1000;
		return new java.text.SimpleDateFormat("MM/dd/yyyy HH:mm:ss").format(new java.util.Date (epoch*1000)); 
	}
	
	public static String getTime(){
		long epoch = System.currentTimeMillis()/1000;
		return new java.text.SimpleDateFormat("HH:mm:ss").format(new java.util.Date (epoch*1000)); 
	}
	
	public static int getDayOfWeek(){
		Calendar c = Calendar.getInstance();
		int mount = c.get(Calendar.DAY_OF_WEEK);
		return mount;
	}
	
	public static boolean isIdToday(Context context){
		DBAdapter db = new DBAdapter(context);
		db.open();
		Cursor cursor  = db.DB_GET_ID_TODAY(getTodayDatenotSymbol());
		if(cursor!=null&cursor.getCount()!=0){
			cursor.close();
			db.close();
			Log.i("isIdToday", "TRUE");
			return true;
			
			
		}else{
			cursor.close();
			db.close();
			Log.i("isIdToday", "FALSE");
			return false;
		}
		
	}
	
	 public static boolean isOnline(Context context) {
		 ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
		  NetworkInfo nInfo = cm.getActiveNetworkInfo();
		  if (nInfo != null && nInfo.isConnected()) {
			  Log.v("isOnline", "TRUE");             
			  return true;
		  }
		  else {
			  Log.v("isOnline", "FALSE");
			  return false;
			  
		  }
		
	  }
	 
	 
	 
	 public static boolean DB_THERE(Context context) {
	      	File DB_PATH = context.getDatabasePath(DBAdapter.DB_NAME);

	      	if(DB_PATH.exists()) { 
	      		Log.i("DB_THERE", "TRUE; "+DB_PATH.getPath());
	      		return true;
	      	}else{
	      		Log.i("DB_THERE", "FALSE");
	      		return false;
	      	}
	      }   
	      
	      
	     
	      public static boolean isServiceRunning(Context context, String serviceClassName){
	           ActivityManager activityManager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
	           List<RunningServiceInfo> services = activityManager.getRunningServices(Integer.MAX_VALUE);

	          for (RunningServiceInfo runningServiceInfo : services) {
	        	  Log.i("ISSERVICE!!!!", runningServiceInfo.service.getClassName());
	              if (runningServiceInfo.service.getClassName().equals(serviceClassName)){
	                  return true;
	              }
	          }
	          return false;
	       }
	 
	   
	   
	  	
	  	
	  	public static int getTime(Context context, int parametr){
	  		SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context);
	  		long i =  Long.parseLong(pref.getAll().get("time_update")+"");
	  		Calendar c = Calendar.getInstance();
	  		c.setTimeInMillis(i);
	  		switch (parametr) {
	  			case 0:
	  				return c.getTime().getHours();
	  				
	  			case 1:
	  				return c.getTime().getMinutes();
	  				
	  		}
	  		return parametr;
	  		
	  	}
	  	
	  	public static String getKyrsDateText(Context context, String date, String exchange){
	  		String text = context.getText(R.string.nal_kyrs).toString()+" "; //= "Наличный курс ";
	  		if(exchange.equalsIgnoreCase("USD")){
	  			text+=context.getText(R.string.nal_kyrs_doll).toString()+" "; //"доллара США ";
	  		}else if(exchange.equalsIgnoreCase("EUR")){
	  			text+=context.getText(R.string.nal_kyrs_eur).toString()+" ";//"евро ";
	  		}else{
	  			text+=context.getText(R.string.nal_kyrs_rub).toString()+" ";//"российского рубля ";
	  		}
	  		
	  		text+=context.getText(R.string.nal_kyrs_na).toString()+" "+date.substring(6, 8)+".";  ///"на "+date.substring(6, 8)+".";
	  		
	  		int i = Integer.parseInt(date.substring(4, 6));
	  		String s = "";
	  		if(i<10){
	  			s="0"+i;
	  		}else{
	  			s=i+"";
	  		}
	  		
	  		text+=s+"."+date.substring(0, 4);
	  	/*	if(i==1)text+="января ";
	  		if(i==2)text+="февраля ";
	  		if(i==3)text+="марта ";
	  		if(i==4)text+="апреля ";
	  		if(i==5)text+="мая ";
	  		if(i==6)text+="июня ";
	  		if(i==7)text+="июля ";
	  		if(i==8)text+="августа ";
	  		if(i==9)text+="сентября ";
	  		if(i==10)text+="октября ";
	  		if(i==11)text+="ноября ";
	  		if(i==12)text+="декабря ";*/
	  		
	  		//text+=date.substring(0, 4)+" года.";
	  		return text;
	  	}
	  	
	  	public static void CToast(Context context, String text){
	  	 Toast.makeText(context, text, Toast.LENGTH_LONG).show();
	  	}
	public static int getint(String s){
		return Integer.parseInt(s);
	}
	public static int getint(Object s){
		return Integer.parseInt(s.toString());
	}
	public static boolean getString(Object s){
		return Boolean.parseBoolean(s.toString());
	}
}